package ae.pcfc.etks.online.itworx.ehs.web.facade;

import java.util.List;

import ae.pcfc.etks.online.common.vo.UserDetailVO;
import ae.pcfc.etks.online.fnp.service.types.CancelPaymentAdviceResponse;
import ae.pcfc.etks.online.itworx.ehs.web.exception.CommunicationException;
import ae.pcfc.etks.online.itworx.ehs.web.exception.FNPServiceExpcetion;
import ae.pcfc.etks.online.itworx.ehs.web.model.FNP;
import ae.pcfc.etks.online.itworx.ehs.web.model.FNPFeesService;
import ae.pcfc.etks.online.itworx.ehs.web.model.PaymentAdvice;

public interface FNPFacade extends Facade {

	List<FNPFeesService> getServices() throws CommunicationException,FNPServiceExpcetion;

	List<FNPFeesService> getServiceInfoAndParameters(List<String> servicesId)
			throws CommunicationException,FNPServiceExpcetion;

	Double previewPaymentAdvice(FNP fnpModel,
			UserDetailVO userDetails)throws CommunicationException,FNPServiceExpcetion;
	
	PaymentAdvice generatePaymentAdvice(FNP fnpModel,String userName,String transactionNumber,
			UserDetailVO userDetails)
			throws CommunicationException,FNPServiceExpcetion;
	
	String queryPaymentAdviceStatus(String paymentAdviceNumber)throws CommunicationException,FNPServiceExpcetion ;
	
	CancelPaymentAdviceResponse cancelPaymentAdvice(String transactionNumber, 
			String paymentAdviceNumber, 
			String userName,
			String message) throws CommunicationException,FNPServiceExpcetion;
}